1. Field of the Invention
The present invention provides a method and apparatus to precisely calibrate a so-called tool center point of a tool, or end-effector, mounted to the face plate of a robotic machine to point locations in three dimensional space. Use of the method ensures the accuracy of programs that command placement of a tool in three dimensional point locations.
2. Description of the Prior Art
A robotic machine is a machine that is composed of a series of links, or arms. Each arm is controlled by an actuator that moves the arm relative to the preceding arm. A controller, executing statements of an application program, commands the actuation of each arm and calculates the resulting configuration of the arm and including the location and orientation of its last link. A robotic machine is manufactured to exacting mechanical tolerances and uses precise sensors and electronics. Consequently the controller commands the actuators with great precision and calculates the configuration and location and orientation of the arm with a great degree of accuracy. The objective of manipulating the machine is to place the center point of a tool, which is attached to the end, or face plate, of the last link in a specified location in space. The tool is normally not part of the machine but is attached to it by the user. Tools vary in size and their attachment is subject to considerable uncertainty. The user is responsible for specifying the definition of the tool he has attached to the face plate to the robot controller as a configuration data item. A tool definition is a vector of six dimensions: the first three coordinates specify the location of the tool center point relative to the face plate, and the last three coordinates specify the orientation of the tool center axes relative to the face plate. The robotic controller uses this tool definition to solve the basic equation of manipulation (formulated below as a linear system of four rows by four columns matrices): EQU Tool.sub.-- Location=T6*Tool.sub.-- Def (E1)
where the Tool.sub.-- Location is a six dimensional vector specifying the position and orientation of the tool in three dimensional space, T6 is a traditional designation specifying the location and orientation of the face plate and is a six dimensional vector. In the equation above, the user specifies Tool.sub.-- Location through his application program. The user also specifies the tool definition, i.e. Tool.sub.-- Def, as a configuration parameter in the robot controller. The controller uses the equation to calculate the T6 vector to ensure that the tool will be placed where the user has specified. However, it is apparent that if errors exist in the tool definition, errors will result in the controller's calculation of the arm configuration (T6), and eventually in the commanded tool location possibly rendering the application useless. From this, it follows that methods to precisely determine tool definition are needed. Additionally, these methods need to be simple and quickly applied because a tool definition is subject to both sudden and gradual change requiring re-calibration. Sudden changes can result from collision between the tool and its environment slightly altering its location relative to the face plate. Gradual changes can result from wear and use and other environmental effect.
A tool center point is a three dimensional vector. It is the first three coordinates of a six dimensional tool definition vector. The orientation vector must also be specified by the user. However, applications are normally not as sensitive to uncertainties in the orientation vector, and the orientation vector can be determined more easily than the tool center point. The method presented herein can be used to determine the orientation vector for tools that are symmetric about their axis. An example of such a tool is an arc welding torch.
Vendors of robotic machines give their customers instructions for determining the definition of tools that the users mount on their robots. The first step is normally to measure with rulers the approximate location of the tool center point relative to the face plate. This is a crude and highly inaccurate method with uncertainty on the order of an inch. The next level of sophistication calls for the user to fix a point (a bull's eye) in space in front of the robot and adjust the value of the tool center point through trial and error until the same location is reported by the robot controller when the point or bull's eye is approached from various directions. This is a time consuming method highly dependent on the skill, determination and effort of the operator for success. Even under the best circumstances an uncertainty of more than 1/2 inch must be assumed for this method. A further improvement instructs the operator typically to rotate manually the tool relative to the vertical and horizontal directions which are assumed to be aligned with the internal coordinate system of the machine. The user either eye balls the vertical and horizontal alignments or uses levels. The tool tip is again brought into light contact with the bull's eye from opposite directions. Software in the controller records the users manual operations and estimates the true value of the tool center point. Again this is a time consuming, iterative process, highly dependent on the operator's skill, effort and patience for its success. With time and careful operation the tool center point can possibly be estimated to within 2 mm which is on the margin of a successful calibration.
An automatic method for calibration of a tool center point is disclosed in U.S. Pat. No. 5,457,367. The method uses a light beam and an iterative search procedure. Many users would prefer not to purchase and set up the light and sensors required by this method. Consequently, there is a need for a method that uses touch sensing instead of disruption of a light beam for measurement of location of the tool during the calibration process.
Methods have been devised for the calibration of robotic manipulators and are offered by the vendors of such devices such as Dynalog and CSI Robotics. These methods and devices are intended to determine the values of the parameters used by a controller to calculate the configuration and location and orientation of the face plate as function of the amount of individual joint actuation. These methods do not apply to tool calibration as they are used with a user's tool removed from the face plate and a special calibration device attached in its stead.
There is a need for a simple, efficient and mathematically exact method and associated apparatus for determining the tool center point of robotic tools. Additionally, such a methods should be able to determine the tool definition of axis symmetric tools such as an arc welding torch.